/*
请编写一个程序寻找一种特殊整数：一个 n 位的正整数等于其各位数字的n次方之和。

例如：407=4×4×4+0×0×0+7×7×7。所以407就是一个特殊数。

输入：
正整数的位数n（n<=6）。

输出：
所有此n位特殊数。每个数占一行。若不存在符合条件的特殊数，则输出提示："No output.”；若存在，则从小到大进行输出。

说明：
假设输入为4，在4位整数中，有3个4位的特殊数，则输出格式为（输出中的1111、2222和9999并不是4位特殊数，只是格式样例）：

1111
2222
9999
*/

/*
测试用例1:
输入：
3↵
输出：
153↵
370↵
371↵
407↵

测试用例2:
输入：
2↵
输出：
No output.↵
*/

#include <iostream>
#include <vector>
using namespace std;

int main(int argc, char *argv[]) {
	
	// 接收用户输入
	int n;
	cin >> n;
	
	// 最值
	int min = pow(10, n-1);
	int max = pow(10, n) - 1;
	
	// 存储结果
	vector<int> v;
	
	// 遍历
	for (int i=min; i<=max; i++)
	{
		// 计算各位数字的n次方之和
		int temp = 0;
		
		int origin = i;
		for (int j=0; j<n; j++)
		{
			temp += pow(origin % 10, n);
			origin /= 10;
		}
		
		// 如果满足要求
		if (i == temp)
			v.push_back(i);
	}
	
	if (v.size() == 0)
	{
		cout << "No output." << endl;
		return 0;
	}
	
	for (int i=0; i<v.size(); i++)
		cout << v[i] << endl;
}